html - 如何在响应式跨浏览器安全的图像网格上精确弹出气球?

标签 html css dynamic safari responsive-design

我试图根据通过 PHP 代码传递给页面的值,在图像上方弹出一个气球。

问题是我的解决方案在 Safari 上有点乱,我不确定为什么会出现错误。 slider 向右显示的太多了。我测试了 Firefox、IE 和 Chrome,它们都呈现半正常状态,但 Safari 的表现最差。

这是jsFiddle .

还有代码,jQuery:

$().ready(function () {
    var score = 64;
    var i = 0;
    $('.hers').find('.cll').each(function () {
        if (score != null) {
            if (i == score) {
                var me = $(this);
                me.append(' ' + score);
                bubbleMe(me);
                $(window).resize(function () {
                    bubbleMe(me);
                });
            }
            i++;
        }
    });

    function bubbleMe(me) {
        $('.bubbleImage').css('left', me.position().left - 7);
        $('.bubbleImage').css('top', me.position().top - 7);
        $('.bubbleImage').css('background-image', 'url("http://olthofhomes.com/dev/communities/img/Slider_30_60.png")');
        $('.bubbleImage').css('background-repeat', 'no-repeat');
    }
});

CSS:

.cll, .cll:empty {
    position: relative;
    width: calc(100% / 155);
    height: auto;
    display: inline-block;
    color: #000;
    z-index: 101;
    font-weight: bold;
}
.bubbleImage {
    position: absolute;
    width: 60px;
    height: 80px;
    left: 0px;
    top: 0px;
    z-index: 100;
}

HTML(使用 PHP 生成 155 个左右的 DIV,每个都有 100%/155th 宽度)

<div class="hers" style="margin-left: 5px;">
    <br />
    <br />
    <br />
    <br />
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="cll"></div>
    <div class="bubbleImage"></div> <a href="#hersindex"><img src="http://olthofhomes.com/dev/images/hers.jpg" class="imgHers" width="100%"></a>
</div>

最佳答案

我改用了 jQuery Slider。也应该是跨浏览器安全的。

<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<script>
    $(function() {
        $("#slider").slider({
            min: 0,
            max: 160,
            value: <?php echo $model['HERSScore']; ?>
        });

        $('#slider .ui-slider-handle').text("<?php echo $model['HERSScore']; ?>");
    });
</script>
<div id="slider"></div>
<img src="hers.jpg" id="slider_image">
</div>    

一些CSS

<style>
    .container99 {
        width: 100%;
        height: auto;
        border: 0px solid black;
        position: relative;
    }

    #slider {
        width: 100%;
        position: absolute;
        top: calc(50% - 5px);
        height: 0px;
        border: 0;
    }

    #slider_image {
        width: 100%;
        height: auto;
    }

    .ui-slider a {
        outline:none;
    }

    #slider .ui-slider-handle {
        background-image: url(communities/img/Slider_30_60.png);
        background-size: 100% 100%;
        background-color: green;
        border: 0;
        width: 30px;
        padding: 0 0 0 7px;
        margin: 0 0 0 0;
        color: #fff;
    }
</style>

关于html - 如何在响应式跨浏览器安全的图像网格上精确弹出气球?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26364447/

相关文章:

javascript - anchor 标记中的 hash(#) 后面的文件夹是什么意思?

javascript - 用户在网站中提交的内容

entity-framework - 如何在 EF.Core 中构建动态 where 过滤器来处理等于、LIKE、gt、lt 等

c# - 如何动态替换电子邮件模板中的占位符

html - 中间有半个圆的div

html - 试图让文本重叠圆形图像以在使用 Bootstrap 调整大小时表现

jquery - Bootstrap 菜单在悬停时显示菜单而不是单击

javascript - 我应该使用触摸操作 : none instead of preventDefault() to stop scrolling on touch device?

forms - 如何在 Coldfusion CFC 内声明动态表单字段默认值?

javascript - 响应式菜单视口(viewport)高度