Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >具有多个可见图像的无限图库

具有多个可见图像的无限图库
EN

Stack Overflow用户
提问于 2012-11-04 03:38:58
回答 2查看 3.2K关注 0票数 2

我希望创建一个类似下面的东西在他们的网站上。

http://www.vogue.com/

显示多个图像的自动滚动幻灯片。(1,2,3)然后(2,3,4)。它最终会根据它们的数量对它们进行循环。每个图像也在一个单独的div中,我认为覆盖是放置在两个没有被聚焦的外部图像的地方。

我不太精通javascript,无法自己从头开始创建这样的东西,也没有找到允许在给定时间看到多个图像的jquery幻灯片。我找到的最接近的插件是一个可以同时滚动3张图片的插件,而且不能自动滚动。

有没有人知道如何使用给定的规范轻松实现这一点?我需要它的表现相当于它在时尚网站上的表现。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-04 10:09:51

jQuery:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// infinite Gallery - script by roXon, design idea by "Vogue(R)"
$(function(){


    var c = 0;        // COUNTER // SET HERE DESIRED START SLIDE NUMBER (zero based)
    var speed = 300;    // ANIMATION SPEED
    var pause = 3500;   // ANIMATION PAUSE
    var $slider = $('.carousel-slider');
    var $sli = $slider.find('.carousel-content');
    var $btns = $('#btn-left, #btn-right');

    /* DO NOT EDIT BELOW */
    var sliN = $sli.length;
    $('.carousel').clone().appendTo( $('.carousel:gt(0)') ); /*CLONE SLIDERS*/
    var m = 0;
    var w = $slider.closest('div').width();
    var intv;
    $slider = $('.carousel-slider'); // all
    $slider.width(w*2);
    // rearrange
    $slider.eq(0).find('.carousel-content:lt('+(c)+')').appendTo( $slider.eq(0) );
    $slider.eq(1).find('.carousel-content:lt('+(c-1)+')').appendTo( $slider.eq(1) );
    $slider.eq(2).find('.carousel-content:gt('+(c)+')').prependTo(  $slider.eq(2) );

    // POPULATE WITH NAVIGATION BUTTONS
    for(i=0;i<sliN;i++){
        $('#nav-btns p').append(' <a href="#">'+ (i+1) +'</a> ');
    }

    // TOGGLE ACTIVE CLASS TO NAV BUTTON
    function navBtnsActive(){
        c = c===-1 ? sliN-1 : c%sliN ;  // counter resets
        $('#nav-btns a').removeClass('btn-active').eq(c).addClass('btn-active'); // nav buttons actives
    }
    navBtnsActive();

    var $lastCont;
    function anim(){
        if(c>m){ // right btn
            $slider.animate({left:-w}, speed, 'linear', function(){
                $(this).css({left:0}).find('.carousel-content:first').appendTo( $(this) );
            });
            m++;
        }else if(c<m){ // left btn  
            $slider.animate({left:-w},0,function(){
                $lastCont = $(this).find('.carousel-content:last');
                $(this).find('.carousel-content:last').prependTo( $(this) );
            }).animate({left:0}, speed, 'linear');
            m--;
        }
        if(c!=m){anim();} // loop until match
    }

    // LEFT-RIGHT BUTTONS //
    $btns.on('click',function(){
        if(!$slider.is(':animated')){
            var btnID = this.id=='btn-right' ? c++ : c-- ;
            anim();
            navBtnsActive();
            m=c;
        }
    });

    // NAV BUTTONS //
    $('#nav-btns a').on('click',function(e){
        e.preventDefault(); 
        c = $(this).index();
        anim(); 
        navBtnsActive();
    });

    // AUTO SLIDE
    function auto(){
        clearInterval(intv);
        intv = setInterval(function(){
            $('#btn-right').click();
        }, pause);
    }
    auto(); // start!

    // PAUSE ON HOVER //
    $('#gallery').on('mouseenter mouseleave',function( e ){
        var mEnt = e.type=='mouseenter',
            aSli = mEnt?clearInterval(intv):auto();
        $btns.stop().fadeTo(300,mEnt?1:0);
    });

});

HTML:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <div id="document_wrapper">

    <div id="container">
      
        <h1 class="title">BLOGUE</h1>
        
        <div id="top-nav"></div>
        
        <div id="gallery"> <!-- OUR PRECIOUS :) -->

            <div class="carousel carousel-center">
                <div class="carousel-slider">
              
                    <div class="carousel-content">
                                         <!-- organize your content here -->
                    </div>
                    <!-- use more .carousel-content here -->
                
                </div>
            </div>
            
            <div class="carousel carousel-left"></div>
            <div class="carousel carousel-right"></div>
        
            <div id="btn-left"></div>
            <div id="btn-right"></div>
            
            <div id="nav-btns"><p></p></div>

        </div>
        
        
            <!-- document content here -->
      
    </div>
    
</div>

CSS:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
*{margin:0;padding:0;} /* UGLY RESET */
body{
    font:14px/24px "Myriad Pro","Trebuchet MS",sans-serif;
    background:#F2EFED;
    color:#555;
}
#document_wrapper{
    position:relative;
    overflow:hidden;
}

h1.title{
    font-family:"Times New Roman",Times,serif;
    font-size:14.16em;
    line-height:0.6em;
    font-weight:normal;
    letter-spacing:10px;
    color:#000;
    position:relative;
    z-index:1;
    top:70px;
}


#container{
    position:relative;
    margin:0px auto;
    width:980px;
    padding-bottom:70px;
    height:1000px;
    background:#fff;
}
#top-nav{
    border-top:1px solid #000;
    position:relative;
    z-index:2;
    background:#fff;
    height:36px;
    width:100%;
}



/* GALLERY */

#gallery{
    height:400px;
    width:100%;
    position:relative;
    left:0px;
    padding-bottom:36px; /* FOR NAV BUTTONS HEIGHT */
}
.carousel{
    background:#147;
    position:absolute;
    margin-left:-10px;
    width:850px;
    height:400px;
    border-left:10px solid #fff;
    border-right:10px solid #fff;
    overflow:hidden;
}
.carousel-left, .carousel-right{
  opacity:0.2;
}
.carousel-left{
    left:-860px;
}
.carousel-right{
    left:860px;
}
.carousel-slider{
    height:400px;
    position:absolute;
    left:0;
}
.carousel-content{
    position:relative;
    margin-left:-10px;
    float:left;
    width:850px;
    height:400px;
    border-left:10px solid #fff;
    border-right:10px solid #fff;
}
/* BUTTONS */
#btn-left, #btn-right{
    position:absolute;
    background:#fff;
    width:25px;
    height:150px;
    top:125px;
    display:none;
    cursor:pointer;
}
#btn-right{
    right:130px;
}
/**/
#nav-btns{
    position:relative;
    top:400px;
    height:30px;
    width:850px;
}
#nav-btns{
    text-align:right;
}
#nav-btns a{
    font-style:italic;
    text-decoration:none;
    color:#888;
    padding:0 8px;
    margin:0 !important;
}
#nav-btns a.btn-active{
    border-top:10px solid #fff;
    text-decoration:none;
    color:#000;
}
#nav-btns a:hover{
    color:#000;
}
票数 1
EN

Stack Overflow用户

发布于 2012-11-04 04:17:01

连接了fiddle

可以进行较小的代码重构和优化,但总体思路是相同的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(function($) {
  var $slider = $('#slider'),
    finalOffset = '-' + $slider.children().last().offset().left + 'px';
    slideSpeed = 5000,
    timer = -1;

  function startSlide() {
    $slider.children().first().animate({
        'margin-left' : finalOffset            
    }, slideSpeed, function() {
        $slider.children().first().animate({'margin-left' : '0px'}, slideSpeed, function() {
            startSlide();
        });
    });   
}

startSlide();
}(jQuery));

干杯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13215854

复制
相关文章
Winform DataGridViewTextBoxCell 编辑添加右键菜单,编辑选中文本
如上是我们使用DataGridView时,编辑单元格右键会出现系统菜单。现在我们添加自己的右键菜单,并可以操作选中文字。
SpringSun
2023/02/03
1.3K0
Django添加ckeditor富文本编辑器
源码 https://github.com/django-ckeditor/django-ckeditor
菲宇
2022/12/21
2.2K0
vim同时编辑多个文件
# 1.如果在终端中开没有打开vim,可以: 横向分割显示: vim -o filename1 filename2 纵向分割显示: vim -O filename1 filename2 # 2.如果已经用vim打开了一个文件,想要在窗口中同时再打开另一个文件: 横向分割显示: :vs filename 纵向分割显示: :sp filename # 3.窗口切换 在所有窗口中循环移动 Ctrl+ww 如果finename不存在,则会新建该文件并打开。 # 4.关闭所有窗口 :wqa
summerking
2022/09/19
1.3K0
在 Emacs 中编辑 crontab
一般来说,编辑 crontab 时可以用 crontab -e ,它会读取 EDITOR 环境变量来决定需要打开的编辑器,比如:
飞驰的西瓜
2023/03/01
6660
在 Emacs 中编辑 crontab
文本编辑sed
sed 全称是 Stream EDitor,是一种流编辑器,什么是流编辑器呢。也就是相当于一个格式化的工具。当数据流过这个工具时,都被格式化成固定的格式。比如一个流水线中的一个模具,原材料是各种形状的,但是结果模具处理之后都变成同一的形状。这就是流编辑器。sed 默认一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用 sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。原文件内容并没有改变。sed 主要用来自动编辑一个或多个文件,简化对文件的反复操作。而不需要编写转换程序来完成。
生信喵实验柴
2022/10/25
5040
在 Docker 容器中编辑文件
我希望每次在docker容器中安装vi的时候谁会给我1美元...我想要一个在运行的docker容器编辑文件的更简单的方式。首先,尝试避免编辑文件,这违背了容器的哲学理念(见最后一段)。
星哥玩云
2022/07/03
5.5K0
在 Docker 容器中编辑文件
Linux去除\r(Window中编辑的文本)
在 Window 上编辑的脚本,上传到 Linux 上执行时一直报错,报错里有个 “\r”,每行后面都加了 “\r”,导致无法执行。
Li_XiaoJin
2022/06/10
3.4K0
Linux去除\r(Window中编辑的文本)
PDF能直接编辑吗?如何编辑PDF文件
PDF能直接编辑吗?相信大家都有同样的疑问吧,大家都觉得PDF文件特殊,应该不能直接进行编辑,如果尝试过编辑却没有成功,那可能是你没有找对方法,下面小编教你一招编辑PDF文件的方法,轻松搞定!
用户5843321
2019/10/21
4.7K0
PDF能直接编辑吗?如何编辑PDF文件
在可编辑div中定位光标和设置光标
当我们去点击一个输入框的时候,就会产生一个选中对象 selection,就是我们可以看到的文字变成蓝色的那个区域,selection在火狐浏览器可以直接用 window.getSelection()获取,在HTML里面,selection只有一个的,并且selection是一个区域,你可以想象成一个长方形,它是有开始和结束的。
越陌度阡
2020/11/26
9.5K0
Linux文本编辑命令
tai命令的强悍的功能是一个可以持续刷新一个文件的内容,当想要实现实时查看最新日志文件,tail -f
心跳包
2020/08/31
2.7K0
文本编辑器
注意:gets_s函数和fgets函数都会从缓冲区带走\n回车符,遇到空格不会停止输入
大忽悠爱学习
2021/03/02
9980
文本编辑器
wangEditor富文本编辑
安装 npm install wangEditor -s 页面引入 import wangEditor from "wangeditor"; 完整代码 <template> <div class="box"> <div id="editor"></div> <div class="btn"> <el-button type="primary" @click="getEditorData" >生成的html代码</el-button >
明知山
2022/05/05
1.6K0
wangEditor富文本编辑
在vue中使用tinymce富文本编辑器+tinymce富文本编辑器插入图片
近日我在百度文库上发现有人搬运我这篇文章去盈利,接下来我改成vip文章了,我自己免费分享,别个赚钱,十分不爽
全栈程序员站长
2022/08/14
1.6K0
在vue中使用tinymce富文本编辑器+tinymce富文本编辑器插入图片
文本编辑器
文本编辑器——记事本类型的应用,可以打开、编辑、保存文本文档。可以增加单词高亮和其它的一些特性。 效果图: //CGEditorDlg成员 public: CString m_filename;//
_gongluck
2018/03/08
2.1K0
文本编辑器
网站功能——添加文章编辑页面,支持 markdown 编辑器实时预览编辑
经常会有使用我博客源码搭建好网站的人问我为啥后台文章编辑页面没有富文本编辑器也没有支持 markdown 编辑,不方便预览。其实之前我也回答过很多次,在创建文章的时候,其实随便找个 markdown 编辑器创建好然后复制进去就行。
Hopetree
2023/07/08
3990
网站功能——添加文章编辑页面,支持 markdown 编辑器实时预览编辑
Atom飞行手册翻译: 2.4 编辑和删除文本
到目前为止,我们介绍了一些用于在文件中移动和选择区域的方法,现在让我们真正来修改一些文本吧。很显然你可以通过打字的方式来输入字符,但是有另一些方法使删除和处理字符变得更简捷易用。
ApacheCN_飞龙
2022/11/27
6470
Atom飞行手册翻译: 2.4 编辑和删除文本
使用nano在Linux中编辑文件
GNU nano,简称nano,是大多数Linux发行版的基本内置编辑器。GNU nano是一个小巧友好的文本编辑器. 与基本的文本编辑相比,nano提供许多额外的特性,例如:交互式的查找和替换,定位到指定的行列,自动缩进,特性切换,国际化支持,以及文件名标记完成。本教程中,我们将介绍一些帮助您入门的基本知识。
风研雨墨
2018/08/17
7.3K0
新编辑神器,可以在终端运行 Jupyter Notebook 了!
在我初学Python的时候,一直惯用着安装式的编辑器软件,比如PyCharm和Spyder。并且,一直以为编辑器都是这种形式的,有的区别只是体验和功能上的差异。
崔庆才
2021/05/17
1.8K0
新编辑神器,可以在终端运行 Jupyter Notebook 了!
IDE工具、文本编辑器的列块编辑模式
有时候需要对若干列进行一样的操作,比如在前一百行数据的最前边加上一样的字符,这时候可以通过列块编辑模式来快捷地实现这个效果。在列块编辑模式下,被选定的区域内的所有字符会被替换成你之后输入的字符。
雨临Lewis
2022/01/11
1.1K0
新编辑神器,可以在终端运行 Jupyter Notebook 了!
在我初学Python的时候,一直惯用着安装式的编辑器软件,比如PyCharm和Spyder。并且,一直以为编辑器都是这种形式的,有的区别只是体验和功能上的差异。
Python数据科学
2021/05/11
1.7K0

相似问题

可以在phonegap中编辑和保存文本吗?

11

我们可以在edittext中有不可编辑的文本吗

20

我们可以编辑PFX文件吗

11

我们可以在UIImagePickerController中配置编辑矩形吗?

12

html文本区域可以同时包含只读文本和可编辑文本吗

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文