【发布时间】:2021-12-31 12:21:48
【问题描述】:
我有一个小滑块,可以将preview 图像切换到main 图像。现在可以正常使用了
blade.php
<div class="custom-carousel-section">
<div class="custom-container">
<div class="custom-carousel">
@if(!empty($article_block_images)) @foreach($article_block_images as $article_block_image)
<div class="custom-carousel__title">
@if($loop->first)
<span>{{ $article_block_image->title }}</span>
@endif
</div>
@endforeach @endif
@if(!empty($article_block_images)) @foreach($article_block_images as $article_block_image)
<div class="main-image">
@if($loop->first)
<img src="{{ $article_block_image->main_image }}" alt="{{ $article_block_image->image_alt }}" title="{{ $article_block_image->image_title }}" data-title="{{ $article_block_image->title }}">
@endif
</div>
@endforeach @endif
<div class="img-to-select">
@if(!empty($article_block_images)) @foreach($article_block_images as $article_block_image)
<div @if($loop->first) class="img-to-select__item selected" @else class="img-to-select__item" @endif>
<img src="{{ $article_block_image->preview_image }}" alt="{{ $article_block_image->image_alt }}" title="{{ $article_block_image->image_title }}" data-title="{{ $article_block_image->title }}" data-main-src="{{ $article_block_image->main_image }}">
</div>
@endforeach @endif
</div>
</div>
</div>
</div>
js
$('.img-to-select__item').click(function () {
$('.img-to-select__item').removeClass('selected');
$(this).addClass('selected');
$('.main-image > img').attr('src', $(this).children('img').data('main-src'));
$('.custom-carousel__title > span').html($(this).children('img').attr('data-title'));
});
但我还有一张图片mobile_image,我希望mobile_image 更改而不是main_image,最大尺寸为576px,为此我使用<picture>
我把我的代码改成这样
<div class="main-image">
@if($loop->first)
<picture>
<source srcset="{{ $article_block_image->mobile_image }}" media="(max-width: 576px)" alt="{{ $article_block_image->image_alt }}" title="{{ $article_block_image->image_title }}" data-title="{{ $article_block_image->title }}">
<source srcset="{{ $article_block_image->main_image }}" alt="{{ $article_block_image->image_alt }}" title="{{ $article_block_image->image_title }}" data-title="{{ $article_block_image->title }}">
<img src="{{ $article_block_image->main_image }}" alt="{{ $article_block_image->image_alt }}" title="{{ $article_block_image->image_title }}" data-title="{{ $article_block_image->title }}">
</picture>
@endif
</div>
但我的滑块停止工作
主图最终变为移动,但滑块本身不切换
在这种情况下,预览图像也会回显,但主图像本身不会改变
我的滑块基本上是这样工作的
我只需要将 main-image 类中的内容放入 <picture> 并根据屏幕大小更改图像
【问题讨论】:
-
切换到
<picture>后是否尝试过再次初始化滑块? -
@VladSolomon 我这里没有初始化,这是滑块工作的所有代码
-
所以当你到达 576px 断点并且图像被移动图像替换时,滑块就停止工作了?
-
@VladSolomon 它根本不起作用,更准确地说,它单击预览图像,但主图像没有改变,但同时
<picture>起作用,并且在所需的大小它替换了图像
标签: javascript php html jquery laravel