最近小编在网站开发中遇到一个需求,就是产品信息展示时,有一张大图,旁边有三张小图,要实现点击三张小图时,大图片要切换为点击的小图片。
以下是小编在网上查找到的资源和代码:首先需要加载jQuery文件,小编发现直接在头部加载不管用,所以只好在functions文件中进行添加:
// 加载scripts和css function md_scripts() { wp_enqueue_script( 'jquery', get_template_directory_uri() . '/fonts/jquery-1.2.min.js', array(), '1.10.1', false ); } add_action( 'wp_enqueue_scripts', 'md_scripts' ); 让后在需要这个功能的代码中加入以下代码:
<div class="product-header--media--row"> <div class="product-header--media--full"> <div class="gallery-photo-box"> <img id="bigImg" src="<?php the_field('text_img') ?>" alt="<?php the_title()?>" class="img-fluid img-product-itemphoto"> </div><!-- 在此处展示大图片,注意次吃的ID在后面要用到 --> </div> <div class="product-header--media--thumbs"> <div class="gallery-box-thumbs"> <ul class="thumbs" id="gallery_photo_thumbs"><!-- 在下面的三个li里放的是三张小图片,全部是从数据库读取的 --> <li class="img-fluid"> <a href="#" data-toggle="modal" data-target="#media_library"> <img alt="" src="<?php the_field('thumb1') ?>"> </a> </li> <li class="img-fluid"> <img alt="GE Aisys Carestation " src="<?php the_field('thumb2') ?>"> </li> <li class="img-fluid"> <img alt="GE Aisys Carestation Anesthesia Machine" src="<?php the_field('thumb3') ?>"> </li> </ul> </div> </div> </div> 最后在此页面加上jQuery代码就可以实现效果,代码如下:
<script> jQuery( document ).ready( function( $ ) { $(".gallery-box-thumbs ul li img").live("click", function () { //获得当前选择颜色图片的src属性 var Imgsrc = $(this).attr("src"); //lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。 var i = Imgsrc.lastIndexOf("."); //substring() 方法用于提取字符串中介于两个指定下标之间的字符。 var unit = Imgsrc.substring(i);//结果:".jpg" Imgsrc = Imgsrc.substring(0, i);//结果:例如:"images/pro_img/blue_one" var Imgsrc_small=Imgsrc + unit;//结果:例如:"images/pro_img/blue_one_small.jpg" var Imgsrc_big = Imgsrc + unit;//结果:例如:"images/pro_img/blue_one_big.jpg" //给大图的src属性和jqimg属性赋值 $("#bigImg").attr({ "src": Imgsrc_small, "jqimg": Imgsrc_big }); //给观看清晰图片的src属性赋值 $("#thickImg").attr("href", Imgsrc_big); }); } ); </script>
如此,便在wordpress中,通过jQuery添加上,点击小图片切换显示大图片的功能了。这是小编半天的心得。当然有借助于网上的资源,希望能够对看到本文档的朋友带来帮助!