使用css做轮播效果为啥最后一张图片显示不出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用css做轮播效果为啥最后一张图片显示不出来相关的知识,希望对你有一定的参考价值。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
#container
width: 400px;
height: 300px;
overflow: hid\den;


#photo
width: 1200px;
animation: switch 5s ease-out infinite;


#photo > img
float: left;
width: 400px;
height: 300px;


@keyframes switch
0%, 25%
margin-left: 0;

35%, 60%
margin-left: -400px;

70%, 100%
margin-left: -800px;



</style>
</head>

<body>
<div id="container">
<div id="photo">
<img src="file:///C:/Users/ASUS/Desktop/%E5%B0%8F%E7%B1%B3%E5%AE%98%E7%BD%91/imgrs/%E7%94%B5%E8%A7%86.jpg">
<img src="file:///C:/Users/ASUS/Desktop/%E5%B0%8F%E7%B1%B3%E5%AE%98%E7%BD%91/imgrs/%E5%B9%B4%E8%B4%A7%E8%8A%82.jpg"/>
<img src="file:///C:/Users/ASUS/Desktop/%E5%B0%8F%E7%B1%B3%E5%AE%98%E7%BD%91/imgrs/%E6%89%8B%E6%9C%BA.jpg" />
</div>
</div>
</body>
</html>
.

使用css做轮播效果最后一张图片显示不出来,首先先再次仔细确认一下地址是否有误,看上去没错也可以重新把正确的地址替换一下试试,另外,因为你的图片还是在本地测试阶段,可以清除一下浏览器的历史数据试试,再就是写代码的时候尽量养成严谨一点的习惯,比如图一代码就少了一个收尾的“/”,虽然能兼容,但是方方面面都能做好小问题就自然少些。 参考技术A 你这个做的没有问题。路径填写错了了而已。把这3图放在同一个index同级上。src直接写xxx1.jpg就行了 参考技术B  ̄  ̄)σ跳预言家可以了谢谢谢谢老板在干嘛?我们可以做朋友吧嗯我知道你是怎么想的那样的人都这样说自己做的怎么样的那个东西吃东西都收拾收拾完的那个位置我。 参考技术C 困告困告故事一点感觉就像可以独立反应快发货联系点大要开心哦一下就脸红出来多多度可以的没好处理理发客人一幅幅福利减肥可以解决的很抗拒路费打个麻将几个上课回家路上开车这个么会更何况付款分开行樱木花道衣服开车就要出门发酒疯都可以

viewpager轮播的时候,当从最后一张图片轮播到第一张的时候,会把前面轮播过的都显示一遍啊

不想要这个效果,想最后一张到第一张跳转的时候,也和别的效果一样,怎么做啊

参考技术A

很简单,只需要将viewPager的滑动速度设置成0即可。

通过反射机制,修改viewPager的属性

以下是我封装好的一个类

public class ViewPagerScroller extends Scroller 
    private int mScrollDuration = 2000;             // 滑动速度
 
    /**
     * 设置速度速度
     * @param duration
     */
    public void setScrollDuration(int duration)
        this.mScrollDuration = duration;
    
     
    public ViewPagerScroller(Context context) 
        super(context);
    
 
    public ViewPagerScroller(Context context, Interpolator interpolator) 
        super(context, interpolator);
    
 
    public ViewPagerScroller(Context context, Interpolator interpolator, boolean flywheel) 
        super(context, interpolator, flywheel);
    
 
    @Override
    public void startScroll(int startX, int startY, int dx, int dy, int duration) 
        super.startScroll(startX, startY, dx, dy, mScrollDuration);
    
 
    @Override
    public void startScroll(int startX, int startY, int dx, int dy) 
        super.startScroll(startX, startY, dx, dy, mScrollDuration);
    
 
     
     
    public void initViewPagerScroll(ViewPager viewPager) 
        try 
            Field mScroller = ViewPager.class.getDeclaredField("mScroller");
            mScroller.setAccessible(true);
            mScroller.set(viewPager, this);
         catch(Exception e) 
            e.printStackTrace();
        
    

 
 
使用方法:
    ViewPagerScroller viewPagerScroller = new ViewPagerScroller(context);
        viewPagerScroller.initViewPagerScroll(viewPager);           //初始货ViewPager时,反射修改滑动速度

以上是关于使用css做轮播效果为啥最后一张图片显示不出来的主要内容,如果未能解决你的问题,请参考以下文章

用vue写一个轮播图效果

CSS轮播只一遍又一遍地显示最后一张图片

viewpager轮播的时候,当从最后一张图片轮播到第一张的时候,会把前面轮播过的都显示一遍啊

vue图片轮播一次显示三张且中间一张图片可以放大缩小

vue中轮播组件,实现默认显示3张图片,中间显示全部两边显示部分

vue.js怎么实现图片轮播?就是一个图片隔一秒换一张,不用别的功能