
最近小编在网站开发中遇到一个需求,就是产品信息展示时,有一张大图,旁边有三张小图,要实现点击三张小图时,大图片要切换为点击的小图片。
以下是小编在网上查找到的资源和代码:首先需要加载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添加上,点击小图片切换显示大图片的功能了。这是小编半天的心得。当然有借助于网上的资源,希望能够对看到本文档的朋友带来帮助!
