首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jquery在文本上添加图像

使用jquery在文本上添加图像
EN

Stack Overflow用户
提问于 2014-10-30 04:09:14
回答 3查看 1.5K关注 0票数 0

我正在尝试在我拥有的一些文本上添加一个图像。这类似于RetailMeNot.com的显示优惠券代码。当用户点击该图像时,该图像被移除,并在同时将用户链接到外部url的同时显示其下的文本。

基本层可以如下所示:

代码语言:javascript
复制
<div class="base">
    <h3>Some text</h3>
</div>

当文本被点击时,我想加载一个带有以下内容的图片:

代码语言:javascript
复制
<div class="overlay">
    <img src="http://example.com/image.jpg"/>
</div>

具有" base“类的基本层的高度是可变的,因此必须调整图像的大小以适应它。我有一个工作的例子,我放置图像,然后调整它的大小,但当javascript可能不被启用时,这会产生问题,因为图像无法调整大小并且看起来很混乱。如果javascript被禁用,我希望脚本回退到只显示底层文本。

如何使用jquery或javascript在页面加载时添加此类覆盖图并自动调整其大小?

EN

回答 3

Stack Overflow用户

发布于 2014-10-30 04:35:22

让您的html页面具有以下代码

代码语言:javascript
复制
<div class="base">
</div>

不要在html页面中放置任何关于你的图片的代码。然后在你的jQuery代码中。

代码语言:javascript
复制
var img = '<img src="http://example.com/image.jpg"/>';
var txt = 'Some text';
$(document).ready(function(){
    $(this).find('.base').html(txt).show();
    $(this).find('.base').click(function(){
        if($(this).html() == img)
            $(this).html(txt).show();
        else
            $(this).html(img).show();
    });
});

这将解决您的问题。

票数 0
EN

Stack Overflow用户

发布于 2014-10-30 05:00:13

你可以这样做:

代码语言:javascript
复制
$(document).ready(function () {
    //Set overlay position and dimension to same as base
    $base = $(".base");
    $overlay = $(".overlay");
    $overlay.offset($base.offset());
    $overlay.height($base.outerHeight());
    $overlay.width($base.outerWidth());

    $overlay.show();

    //Hide overlay on click (show hidden text)
    $(".overlay").click(function () {
        $(this).fadeOut();
    });
});

并使用css:

代码语言:javascript
复制
.overlay{
/* Hide overlay if no js */
    position: absolute;
    display: none;    
}

点击这里查看:JSFiddle

票数 0
EN

Stack Overflow用户

发布于 2014-10-30 05:04:54

如果可以将覆盖放在基础中,则如下所示:

代码语言:javascript
复制
<div class="base">
    <h3>Some text</h3>
    <div class="overlay">
        <img src="http://example.com/image.jpg"/>
    </div>
</div>

你可以css这个,不需要javascript:

代码语言:javascript
复制
.base{
    position: relateive;
}
.overlay{
    position: absolute; /* or fixed if scrollbars involved */
    display: none;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
 /* or replace right and bottom with: */
 /* width: 100%;
    height: 100%; */
}

现在可以使用javascript切换可见性:

代码语言:javascript
复制
$('.overlay').fadeIn();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26639709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档