亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

前端實現文字滾動效果

  1. 文字由左往右匀速滚动,鼠标放入时文字停止滚动,移出后继续滚动。(上一条文案完全移出容器后下一条文案才开始从左边往右移动,所以实现的时候会在两条文案的dom之间加一个空的dom)

    https://img1.sycdn.imooc.com//5f9fc78b0001887404100088.jpg

    https://img1.sycdn.imooc.com//5f9fcb57000151a103890072.jpg

下面的实现方案主要是用了定时器setInterval不断的改变transform在X轴的值。

代码如下:

    var translateX = 0;
    var scrollboxLength=  $('.basicInfoWrapper .scroll-wrapper').width();
    var adNum = parseInt($('.ad-num').html());
    var itemTotalLenth = 0;
    if(adNum>0){
        for(var i=0;i<adNum;i++){
            var j=(i*2)+2;
            var scrollItemLength = $('.basicInfoWrapper .scroll-text .scroll-item:nth-child('+j+')').width();

            itemTotalLenth += scrollItemLength;
        }
    }

    var scrollLenth= itemTotalLenth + (adNum*scrollboxLength);

    var basicInterval = setInterval(function () {
        translateX++

        if (translateX === (scrollLenth)) {
            translateX =  0;
        }
        $('.basicInfoWrapper .scroll-text').css({
            'transform': 'translateX(-' + translateX + 'px)'
        })
    }, 20)


$(".basicInfoWrapper .scroll-wrapper").mouseleave(function(){
    basicInterval = setInterval(function () {
        translateX++
        if (translateX === (scrollLenth)) {
            translateX =  0;
        }
        $('.basicInfoWrapper .scroll-text').css({
            'transform': 'translateX(-' + translateX + 'px)'
        })
    }, 20)
});
$(".basicInfoWrapper .scroll-wrapper").mouseenter(function(){
    clearInterval(basicInterval);
});


2.文字由下往上匀速滚动,鼠标放入时文字停止滚动,移出后继续滚动。

https://img1.sycdn.imooc.com//5f9fc87700019bda08620068.jpg

主要是用了定时器setInterval不断的改变transform在Y轴的值。

代码如下:

var fscrollboxH =  $('.scroll-wrapper.flagship-scroll').height();
var fscrolltextH = $('.scroll-wrapper.flagship-scroll .scroll-text').height();
var fscrollBegin = (fscrollboxH/2)+(fscrolltextH/2);
var fscrollY = fscrollBegin;     //初始位置

var fBasicInterval = setInterval(function () {
  fscrollY--
  if (fscrollY === -(fscrolltextH/2-fscrollboxH/2)) {
    fscrollY =  fscrollBegin;
  }
  $('.basicInfoWrapper .flagship-scroll .scroll-text').css({
    'transform': 'translateY(' + fscrollY + 'px)'
  })
}, 20)

$(".scroll-wrapper.flagship-scroll").mouseleave(function(){
  fBasicInterval = setInterval(function () {
    fscrollY--
    if (fscrollY === -(fscrolltextH/2-fscrollboxH/2)) {
      fscrollY =  fscrollBegin;
    }
    $('.basicInfoWrapper .flagship-scroll .scroll-text').css({
      'transform': 'translateY(' + fscrollY + 'px)'
    })
  }, 20)
});
$(".scroll-wrapper.flagship-scroll").mouseenter(function(){
  clearInterval(fBasicInterval);
});


3.文字由下往上滚动,文字由下跳入容器中间后停顿N秒时间再往上跳出容器消失,鼠标放入时文字停止跳动,移出后继续跳动。

https://img1.sycdn.imooc.com//5f9fcae900012e3c08750075.jpg

这里主要是运用了swiper插件,代码如下:

<div class="scroll-wrapper black-scroll">
    <div class="icon"></div>
    <div class="swiper-container scroll-text">
        <div class="swiper-wrapper">
            <div class="swiper-slide">7分钟前,有人听过</div>
            <div class="swiper-slide">评分过低,注意风险!</div>
            <div class="swiper-slide">无效牌照,注意风险!</div>
            <div class="swiper-slide">疑似冒牌,建议远离!</div>
        </div>
    </div>
</div>
var blackswiper = new Swiper('.black-scroll .swiper-container', {
  direction: 'vertical',    //垂直方向,由下往上
  autoplay: {                //自动轮播,每2秒播放一条
    delay: 2000
  },
  navigation: '',
  loop: true,
});

blackswiper.el.onmouseover = function(){  //鼠标放上暂停轮播
  blackswiper.autoplay.stop();
}
blackswiper.el.onmouseleave = function() {
  blackswiper.autoplay.start();
}


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
Web前端工程師
手記
粉絲
18
獲贊與收藏
63

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消