css3-transition完美制作手风琴效果

  在css3出现之前手风琴的效果一般都是通过js或者jquery写,无论是哪种方法,都比较繁琐,css3的过渡:transition既简单又完美的实现了这一效果!     demo图:

  关于css3transition这一属性的详解网上有很多,不了解的童鞋可以搜一下~这个效果是通过hover来改变图片在鼠标进入和进出时的显示范围,比较繁琐的一项工作是计算放大一张图片时其他图片平均占用显示区域的宽度和没有放大任何一张图片时(即初始状态)每个图片占用显示区域的宽度,为了突出立体效果,本例还设置了显示区域的阴影和每张图片的阴影,还有一个细节部分就是:css3未出现之前,我们设置这个效果是相当麻烦的,现在呢,我们只需要一条命令就可以解决:background:rgba(0~255,0~255,0~255,0~1),这个a就是设置透明度用的,相当于opacity,rgb就是我们通常设置颜色用的。需要注意的地方大概就是这些,代码是超简单的,相信你看到会很兴奋!

View Code
 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="utf-8" />
 5         <title>css3 switchingImage</title>
 6         <style>
 7             *{margin:0;padding:0;border:0;}
 8             ul,li{list-style-type:none;}
 9             a{font-size:20px;color:#fff;font-weight:bold;line-height:50px;text-decoration:none;}
10             body{background:#319CC7;font-family: arial, verdana, tahoma;}
11             .out{width:760px;height:433px;margin:100px auto;overflow:hidden;
12                 box-shadow:0 0 10px 1px rgba(0,0,0,0.25);
13                 -o-box-shadow:0 0 10px 1px rgba(0,0,0,0.25);
14                 -webkit-box-shadow:0 0 10px 1px rgba(0,0,0,0.25);
15                 -moz-box-shadow:0 0 10px 1px rgba(0,0,0,0.25);
16             }
17             .in{width:2000px;}
18             .in li{position:relative;display:block;float:left;border:1px solid #BBBBBB;width:158px;
19                 box-shadow:0 0 25px 10px rgba(0,0,0,0.25);
20                 -o-box-shadow:0 0 25px 10px rgba(0,0,0,0.25);
21                 -webkit-box-shadow:0 0 25px 10px rgba(0,0,0,0.25);
22                 -moz-box-shadow:0 0 25px 10px rgba(0,0,0,0.25);
23                 transition:all  0.5s;
24                 -o-transition:all  0.5s;
25                 -webkit-transition:all  0.5s;
26                 -moz-transition:all  0.5s;
27             }
28             .in img{display:block;}
29             .attention{width:600px;height:50px;position:absolute;background:rgba(0,0,0,0.5);bottom:0;}
30             .attention a{display:block;cursor:pointer;}
31              ul:hover li{width:38px;}
32              ul li:hover{width:598px;}
33              .gray{position:absolute;z-index:-1;}
34         </style>
35     </head>
36 
37     <body>
38         <div class='out'>
39             <ul class='in'>
40                 <li>
41                     <div class='attention'>
42                         <a href='###' title='马尔代夫'>马尔代夫</a>
43                     </div>
44                     <img src="images/switch1.jpg"/>
45                 </li>
46                 <li>
47                     <div class='attention'>
48                         <a href='###' title='惠州建筑'>惠州建筑</a>
49                         
50                     </div>
51                     <img src="images/switch2.jpg"/>
52                 </li>
53                 <li>
54                     <div class='attention'>
55                         <a href='###' title='平寨水库'>平寨水库</a>
56                         
57                     </div>
58                     <img src="images/switch3.jpg"/>
59                 </li>
60                 <li>
61                     <div class='attention'>
62                         <a href='###' title='瑞士风光'>瑞士风光</a>
63                         
64                     </div>
65                     <img src="images/switch4.jpg"/>
66                 </li>
67                 <li>
68                     <div class='attention'>
69                         <a href='###' title='蓝色海洋'>蓝色海洋</a>
70                         
71                     </div>
72                     <img src="images/switch5.jpg"/>
73                 </li>
74             </ul>
75         </div>
76     </body>
77 </html>

  由于免费空间申请比较麻烦,所以暂时还木有申请到,没有办法上传demo,请见谅!(本例中用到的图片大小是宽600高433的,有兴趣的童鞋可以按照这个尺寸弄几张图片看一下效果。)

转载于:https://www.cnblogs.com/xiamigongcheng/archive/2012/08/09/2630900.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Vue的`v-for`指令结合CSS来创建图片手风琴效果。下面是一个简单的示例: ```html <template> <div class="accordion"> <div class="accordion-item" v-for="(image, index) in images" :key="index"> <img :src="image.url" alt="Image"> <div class="content" :class="{ 'active': activeIndex === index }"> <p>{{ image.description }}</p> </div> </div> </div> </template> <script> export default { data() { return { images: [ { url: 'image1.jpg', description: 'Image 1 description' }, { url: 'image2.jpg', description: 'Image 2 description' }, // Add more images here ], activeIndex: null }; }, methods: { toggleAccordion(index) { this.activeIndex = (this.activeIndex === index) ? null : index; } } }; </script> <style> .accordion { display: flex; flex-wrap: wrap; } .accordion-item { flex: 1 0 33%; /* Adjust this value as per your layout */ position: relative; overflow: hidden; transition: flex-basis 0.3s ease; } .accordion-item img { width: 100%; } .content { background-color: #f1f1f1; padding: 10px; max-height: 0; overflow: hidden; transition: max-height 0.3s ease; } .content.active { max-height: 200px; /* Adjust this value as per your content */ } </style> ``` 在上面的示例中,我们使用`v-for`指令遍历`images`数组,并为每个图片创建一个手风琴项。点击手风琴项时,通过`toggleAccordion`方法切换`activeIndex`的值,以展开或折叠内容部分。CSS样式定义了手风琴的布局和过渡效果。 请确保将`image1.jpg`和`image2.jpg`替换为你自己的图片路径,并根据需要调整样式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值