jquery 滚动插件

分享一个滚动插件的源码:

(function($){$.fn.bxCarousel=function(options){
    var defaults={
        move:4,
        display_num:4,
        speed:500,
        margin:0,
        auto:false,
        auto_interval:2000,
        auto_dir:'next',
        auto_hover:false,
        next_text:'next',
        next_image:'',
        prev_text:'prev',
        prev_image:'',
        controls:true
    };
    var options=$.extend(defaults,options);
    return this.each(function(){var $this=$(this);
    var li=$this.find('li');
    var first=0;
    var fe=0;
    var last=options.display_num-1;
    var le=options.display_num-1;
    var is_working=false;var j='';
    var clicked=false;li.css({'float':'left','listStyle':'none','marginRight':options.margin});
    var ow=li.outerWidth(true);
    wrap_width=(ow*options.display_num)-options.margin;var seg=ow*options.move;
    $this.wrap('<div class="bx_container"></div>').width(999999);
    if(options.controls){if(options.next_image!=''||options.prev_image!='')
    {var controls='<a href="" class="prev"><img src="'+options.prev_image+'"/></a><a href="" class="next"><img src="'+options.next_image+'"/></a>';}
    else{var controls='<a href="" class="prev">'+options.prev_text+'</a><a href="" class="next">'+options.next_text+'</a>';}}
    $this.parent('.bx_container').wrap('<div class="bx_wrap"></div>').css({'position':'relative','width':wrap_width,'overflow':'hidden'}).before(controls);
    var w=li.slice(0,options.display_num).clone();
    var last_appended=(options.display_num+options.move)-1;$this.empty().append(w);get_p();get_a();
    $this.css({'position':'relative','left':-(seg)});
    $this.parent().siblings('.next').click(function(){slide_next();clearInterval(j);clicked=true;return false;});
    $this.parent().siblings('.prev').click(function(){slide_prev();clearInterval(j);clicked=true;return false;});
    if(options.auto){start_slide();if(options.auto_hover&&clicked!=true){$this.find('li').live('mouseenter',function(){if(!clicked){clearInterval(j);}});
    $this.find('li').live('mouseleave',function(){if(!clicked){start_slide();}});}}
    function start_slide(){
        if(options.auto_dir=='next'){
            j=setInterval(function(){slide_next()},options.auto_interval);}
        else{j=setInterval(function(){slide_prev()},options.auto_interval);}}
    function slide_next(){
        if(!is_working){is_working=true;set_pos('next');
            $this.animate({left:'-='+seg},options.speed,function(){$this.find('li').slice(0,options.move).remove();$this.css('left',-(seg));get_a();is_working=false;});}}
    function slide_prev(){
        if(!is_working){is_working=true;set_pos('prev');
            $this.animate({left:'+='+seg},options.speed,function(){$this.find('li').slice(-options.move).remove();$this.css('left',-(seg));get_p();is_working=false;});}}
    function get_a(){
        var str=new Array();var lix=li.clone();le=last;
        for(i=0;i<options.move;i++){le++
        if(lix[le]!=undefined){str[i]=$(lix[le]);}else{le=0;str[i]=$(lix[le]);}}
            $.each(str,function(index){$this.append(str[index][0]);});}
    function get_p(){var str=new Array();var lix=li.clone();fe=first;for(i=0;i<options.move;i++){fe--
        if(lix[fe]!=undefined){str[i]=$(lix[fe]);}else{fe=li.length-1;str[i]=$(lix[fe]);}}
            $.each(str,function(index){$this.prepend(str[index][0]);});}
    function set_pos(dir){if(dir=='next'){first+=options.move;if(first>=li.length){first=first%li.length;}
        last+=options.move;if(last>=li.length){last=last%li.length;}}else if(dir=='prev'){first-=options.move;if(first<0){first=li.length+first;}
        last-=options.move;if(last<0){last=li.length+last;}}}});}})(jQuery);

 

 

 

用法:

 jQuery(document).ready(function() {
  $('#example1').bxCarousel({
   display_num: 7,
   move: 1,
   prev_image: 'res/images/arrow_prev.png',
   next_image: 'res/images/arrow_next.png',
         auto: false,
         margin: 26
  });
 });

 

资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在本文中,我们将探讨如何通过 Vue.js 实现一个带有动画效果的“回到顶部”功能。Vue.js 是一款用于构建用户界面的流行 JavaScript 框架,其组件化和响应式设计让实现这种交互功能变得十分便捷。 首先,我们来分析 HTML 代码。在这个示例中,存在一个 ID 为 back-to-top 的 div 元素,其中包含两个 span 标签,分别显示“回到”和“顶部”文字。该 div 元素绑定了 Vue.js 的 @click 事件处理器 backToTop,用于处理点击事件,同时还绑定了 v-show 指令来控制按钮的显示与隐藏。v-cloak 指令的作用是在 Vue 实例渲染完成之前隐藏该元素,避免出现闪烁现象。 CSS 部分(backTop.css)主要负责样式设计。它首先清除了一些默认的边距和填充,对 html 和 body 进行了全屏布局,并设置了相对定位。.back-to-top 类则定义了“回到顶部”按钮的样式,包括其位置、圆角、阴影、填充以及悬停时背景颜色的变化。此外,与 v-cloak 相关的 CSS 确保在 Vue 实例加载过程中隐藏该元素。每个 .page 类代表一个页面,每个页面的高度设置为 400px,用于模拟多页面的滚动效果。 接下来是 JavaScript 部分(backTop.js)。在这里,我们创建了一个 Vue 实例。实例的 el 属性指定 Vue 将挂载到的 DOM 元素(#back-to-top)。data 对象中包含三个属性:backTopShow 用于控制按钮的显示状态;backTopAllow 用于防止用户快速连续点击;backSeconds 定义了回到顶部所需的时间;showPx 则规定了滚动多少像素后显示“回到顶部”按钮。 在 V
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值