gpt4 book ai didi

javascript - 在网页上显示标题或替代文本

转载 作者:行者123 更新时间:2023-11-28 20:21:48 25 4
gpt4 key购买 nike

目前,我的网站上有一个幻灯片,显示了作品集的一些图像。它效果很好,但现在我想在单独的框/div 中使用图像下方的替代文本或标题添加标题。

这可能吗?如果是这样,有人知道有任何教程或资源可以实现这一目标吗?

目前这就是我显示图像的方式

<ul class="slides">
<li><img src="Pictures/1.jpg" width="400" height="200" title = ""alt="Marsa Alam underawter close up" /></li>
<li><img src="Pictures/2.jpg" width="400" height="200" alt="Marsa Alam underawtzxcxzczxczxczxczer close up" /></li>
<li><img src="Pictures/4.jpg" width="400" height="200" alt="Marsa Alam underawccccter close up" /></li>
<li><img src="Pictures/3.jpg" width="400" height="200" alt="Marsa Alam underawtcxzczxcxzczcxcxzcer close up" /></li>

</ul>

要循环浏览图像,请使用此脚本 http://tutorialzine.com/2010/09/html5-canvas-slideshow-jquery/

$(window).load(function(){

// We are listening to the window.load event, so we can be sure
// that the images in the slideshow are loaded properly.


// Testing wether the current browser supports the canvas element:
var supportCanvas = 'getContext' in document.createElement('canvas');

// The canvas manipulations of the images are CPU intensive,
// this is why we are using setTimeout to make them asynchronous
// and improve the responsiveness of the page.

var slides = $('#slideshow li'),
current = 0,
slideshow = {width:0,height:0};

setTimeout(function(){

window.console && window.console.time && console.time('Generated In');

if(supportCanvas){
$('#slideshow img').each(function(){

if(!slideshow.width){
// Taking the dimensions of the first image:
slideshow.width = this.width;
slideshow.height = this.height;
}

// Rendering the modified versions of the images:
createCanvasOverlay(this);
});
}

window.console && window.console.timeEnd && console.timeEnd('Generated In');

$('#slideshow .arrow').click(function(){
var li = slides.eq(current),
canvas = li.find('canvas'),
nextIndex = 0;

// Depending on whether this is the next or previous
// arrow, calculate the index of the next slide accordingly.

if($(this).hasClass('next')){
nextIndex = current >= slides.length-1 ? 0 : current+1;
}
else {
nextIndex = current <= 0 ? slides.length-1 : current-1;
}

var next = slides.eq(nextIndex);

if(supportCanvas){

// This browser supports canvas, fade it into view:

canvas.fadeIn(function(){

// Show the next slide below the current one:
next.show();
current = nextIndex;

// Fade the current slide out of view:
li.fadeOut(function(){
li.removeClass('slideActive');
canvas.hide();
next.addClass('slideActive');
});
});
}
else {

// This browser does not support canvas.
// Use the plain version of the slideshow.

current=nextIndex;
next.addClass('slideActive').show();
li.removeClass('slideActive').hide();
}
});

},100);

// This function takes an image and renders
// a version of it similar to the Overlay blending
// mode in Photoshop.

function createCanvasOverlay(image){

var canvas = document.createElement('canvas'),
canvasContext = canvas.getContext("2d");

// Make it the same size as the image
canvas.width = slideshow.width;
canvas.height = slideshow.height;

// Drawing the default version of the image on the canvas:
canvasContext.drawImage(image,0,0);


// Taking the image data and storing it in the imageData array:
var imageData = canvasContext.getImageData(0,0,canvas.width,canvas.height),
data = imageData.data;

// Loop through all the pixels in the imageData array, and modify
// the red, green, and blue color values.

for(var i = 0,z=data.length;i<z;i++){

// The values for red, green and blue are consecutive elements
// in the imageData array. We modify the three of them at once:

data[i] = ((data[i] < 128) ? (2*data[i]*data[i] / 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) / 255));
data[++i] = ((data[i] < 128) ? (2*data[i]*data[i] / 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) / 255));
data[++i] = ((data[i] < 128) ? (2*data[i]*data[i] / 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) / 255));

// After the RGB elements is the alpha value, but we leave it the same.
++i;
}

// Putting the modified imageData back to the canvas.
canvasContext.putImageData(imageData,0,0);

// Inserting the canvas in the DOM, before the image:
image.parentNode.insertBefore(canvas,image);
}

});

幻灯片的 CSS 在这里

#slideshow ul{
height:310px;
position:absolute;
top:10px;
width:410px;
}

#slideshow li{
position:absolute;
display:none;
z-index:10;
margin-left:-30px;
margin-top:-15px;
}

#slideshow li:first-child{

display:block;
margin-left:-30px;
margin-top:-15px;
}

#slideshow .slideActive{
z-index:1000;
}

#slideshow canvas{
display:none;
position:absolute;
z-index:100;
}


#slideshow .arrow{
height:86px;
width:60px;
position:absolute;
background:url('img/arrows.png') no-repeat;
top:50%;
margin-top:-43px;
cursor:pointer;
z-index:5000;
}

#slideshow .previous{ background-position:left top;left:0;}
#slideshow .previous:hover{ background-position:left bottom;}

#slideshow .next{ background-position:right top;right:0;}
#slideshow .next:hover{ background-position:right bottom;}

最佳答案

这样的东西应该可以工作,每个li中都会有一个span,其中包含来自alt的文本

var addTitle = function(){
var alt = $('img', this).attr('alt');

$(this).append('<span>' + alt + '</span>');
};

$('.slides li').each(addTitle);

关于javascript - 在网页上显示标题或替代文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18177378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com