整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          html中滾動字體的設置

          頁中添加滾動字幕效果

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>滾動字體的設置</title>

          </head>

          <body>

          <canvas id="canvas1" width="600" height="600" style="border:1px solid #000000"></canvas>

          <script type="text/javascript">

          var canvas1 = document.querySelector("#canvas1") // 1.找到畫布對象

          var ctx = canvas1.getContext("2d") // 2.上下文對象(畫筆)


          ctx.shadowBlur = 10; // 陰影距離

          ctx.shadowColor = "red" // 陰影顏色

          ctx.shadowOffsetX = 30 // 陰影偏移

          ctx.shadowOffsetY = 30 // 陰影偏移


          ctx.font = "150px 楷體"


          ctx.fillText("你好!", 20,150)


          ctx.fillText("你好!", 20,350)


          ctx.strokeText('你好!',23, 153)


          ctx.strokeText('你好',23, 553)


          canvas繪制文字



          var x = 600

          setInterval(function(){

          if(x > -350){

          //清空畫布

          ctx.clearRect(0,0,600,600)

          ctx.strokeText('你好!',x, 153)

          ctx.fillText("你好!", x,350)


          ctx.font = "50px 宋體"

          ctx.strokeText('每天學習一點點',x, 553)


          x -= 3

          }else{x=590}



          }, 16)


          </script>


          </body>

          </html>

          天要實現的是字體上下無縫滾動效果,在友情鏈接這塊,2345提供了很多的鏈接并且通過定時的無縫滾動讓內容顯示在窗口中,這里我也來寫下這個功能,當頁面載入時鏈接自動往上無縫滾動,當鼠標停留時滾動停止。

          首先我們先來實現字幕滾動效果,一般情況下如果是多個單條數據翻滾,比較單間的方法就是用css來實現,通過animation和@keyframes配合就可以快速的實現滾動,但是但是這時會有個問題,滾到最后一條時會自動跳到第一條,中間出現了斷層的感覺,所以使用該方法時最好將第一條數據復制一遍放尾部,然后通過animation-fill-mode: forwards;將動畫重置為第一幀,這樣就能夠實現無縫的滾動了。

          .linkContent {
           width: 90%;
           height: 20px;
           animation: move 3s infinite 2s running; 
           animation-fill-mode: forwards; 
          }
          @keyframes move {
           0% {
           transform:translatey(0px);
           }
           100% {
           transform:translateY(-20px);
           }
          }
          

          這里我的數據是通過p標簽遍歷a標簽得到的,所以每行有好多個a標簽,具體個數與內容長短有關,所以復制第一條無法實現,所以這方法不合適我這里使用,所以這里我們還是用js來實現吧,為了更好的獲取元素的位置,這里稍微改動下HTML,在列表下面加個p標簽方便定位。

          接下來我們開始寫方法,在methods中寫個paly方法, 通過document.getElementById來獲取當前元素,這里scrollTop獲取被選元素的垂直滾動條位置,offsetHeight獲取該控件本身的高度,然后設置一個定時器,給定一個speed時間,這樣就實現了自動無縫滾動的效果了。

          play () {
           var speed = 100;
           var wrapper = document.getElementById('wrapper');
           var demo1 = document.getElementById('demo1');
           var demo2 = document.getElementById('demo2');
           demo2.innerHTML=demo1.innerHTML 
           console.log(demo2.innerHTML)
           function Marquee(){ 
           if(demo2.offsetHeight-wrapper.scrollTop<=0) 
           wrapper.scrollTop-=demo1.offsetHeight; 
           else{ 
           wrapper.scrollTop+=1 
           } 
           } 
           var MyMar=setInterval(Marquee,speed) 
           wrapper.onmouseover=function() {clearInterval(MyMar)} 
           wrapper.onmouseout=function() {MyMar=setInterval(Marquee,speed)} 
          }, 
          

          因為 是獲取當前的DOM元素進行操作的,所以這里我們要等頁面載入之后再進行滾動操作,所以這里我們在mounted()中調用paly方法即可,還有.linkContent比忘了加上overflow: hidden;屬性。

           mounted(){
           this.play();
           },
          

          這是結合了JavaScript語法實現的文字無縫滾動效果,雖然達到了預期,但是現在在用vue,我還是想用vue來實現這個功能,只是目前還沒有研究出來,主要是因為我的a標簽數據是全包裹在一個p標簽中的,也就是每行的數據不定,內容也不定,所以只能通過移動p標簽外面的div來實現功能,不知有沒有大神能指點一二。

          手機頁面移動端,需求是文字向左無縫滾動marquee特效,用了幾個都不行,達不到需求效果,有小bug,最后用了下面的這個原生純js文字向左無縫滾動marquee特效,我測試了沒有問題,可以正常使用它,原生純js代碼少,實用性強,具體看下代碼。

          1.先看效果演示:

            2.原生純js代碼如下:

            var speed=10; //數字越大文字滾動速度越慢

            var tab=document.getElementById("demo");

            var tab1=document.getElementById("demo1");

            var tab2=document.getElementById("demo2");

            tab2.innerHTML=tab1.innerHTML;

            function Marquee(){

            if(tab2.offsetWidth-tab.scrollLeft<=0)

            tab.scrollLeft-=tab1.offsetWidth

            else{

            tab.scrollLeft++;

            }

            }

            var MyMar=setInterval(Marquee,speed);

            tab.onmouseover=function() {clearInterval(MyMar)};

            tab.onmouseout=function() {MyMar=setInterval(Marquee,speed)};

            var onOff = true;

            var Time = setInterval(Chang,3000);

            function Chang(){

            if(onOff){

            oFig.style.marginLeft='-100%';

            onOff = false;

            }else{

            oFig.style.marginLeft='0';

            onOff = true;

            }

            }

            3.完整版代碼地址:

            http://tangjiusheng.com/js/20180526.html

            除注明外的文章,均為來源:湯久生博客,轉載請保留本文地址!


            主站蜘蛛池模板: 一区二区免费在线观看| 无码人妻精品一区二区蜜桃网站 | 国产成人精品无码一区二区三区 | 亚洲综合一区二区精品久久| 国产午夜精品一区二区三区极品 | 老熟妇高潮一区二区三区| 高清一区二区三区免费视频| 国产成人精品久久一区二区三区av| 亚洲无人区一区二区三区| 日本无卡码一区二区三区| 亚洲欧洲无码一区二区三区| 国产成人精品一区二区三区免费| 精品人体无码一区二区三区| 久久久人妻精品无码一区| 久久久久人妻一区精品果冻| 高清无码一区二区在线观看吞精| 波多野结衣在线观看一区二区三区 | 91一区二区视频| 亚洲一区二区三区写真| 国产成人一区二区在线不卡| 日本高清无卡码一区二区久久| 日韩精品一区二三区中文| 国产福利精品一区二区| 美女视频一区三区网站在线观看| 日本一道高清一区二区三区 | 人妻无码一区二区三区免费| 影音先锋中文无码一区| 亚洲片国产一区一级在线观看| 色婷婷AV一区二区三区浪潮| 国产乱码一区二区三区| 一区五十路在线中出| 极品人妻少妇一区二区三区| 四虎成人精品一区二区免费网站| 久久久人妻精品无码一区| 人妖在线精品一区二区三区| 无码欧精品亚洲日韩一区夜夜嗨 | 日本一区二区三区在线网 | 国产乱人伦精品一区二区| 亚洲一区二区三区免费| 亚洲熟妇av一区| 波多野结衣高清一区二区三区|