首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用CSS平滑地放大到一个特定的点?

如何用CSS平滑地放大到一个特定的点?
EN

Stack Overflow用户
提问于 2014-03-24 12:21:25
回答 3查看 5K关注 0票数 3

当我在图片上方盘旋时,我想放大到铅笔上。

HTML:

代码语言:javascript
复制
<div>
</div>

CSS:

代码语言:javascript
复制
div {
    width: 400px;
    height: 267px;
    border: 1px solid black;
    background-image: url('http://i.imgur.com/n9q7jhm.jpg');
    background-size: 400px 267px;
    transition: all 1s ease;
}

div:hover{
    background-size: 500px 333px;
    background-position: -60px -60px;
}

JSFiddle:http://jsfiddle.net/AX59Y/

我天真的尝试是增加图像的大小和改变图像的位置,然而,正如你可以从琴弦中看到的那样,当它试图同时完成两个转换时,过渡是非常曲折的。

有更好的办法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-24 13:43:26

从SW4获取答案,并更改转换原点的左侧和顶部更改

代码语言:javascript
复制
#image {
    background-image: url('http://i.imgur.com/n9q7jhm.jpg');
    background-size: 400px 267px;
    background-position:center;
    transition: all 1s ease;
    width:100%;
    height:100%;
    transform: scale(1);
    position:relative;
    left:0;
    top:0;
    -webkit-transform-origin: 75% 75%;
    transform-origin: 75% 75%;
}
#wrapper:hover #image {
    -webkit-transform: scale(2);
    transform: scale(2);
}

75%的75%或多或少是铅笔的位置,但你可以把它设置成任何你想要的。

小提琴

票数 3
EN

Stack Overflow用户

发布于 2014-03-24 12:26:14

您可以使用转换来在悬停时缩放和重新定位图像,为了做到这一点,您需要将图像div封装在具有溢出隐藏的父文件中。

演示Fiddle

HTML

代码语言:javascript
复制
<div id='wrapper'>
    <div id='image'></div>
</div>

CSS

代码语言:javascript
复制
#wrapper {
    width: 400px;
    height: 267px;
    border: 1px solid black;
    overflow:hidden;
    position:relative;
}
#image {
    background-image: url('http://i.imgur.com/n9q7jhm.jpg');
    background-size: 400px 267px;
    background-position:center;
    transition: all 1s ease;
    width:100%;
    height:100%;
    transform: scale(1);
    position:relative;
    left:0;
    top:0;
}
#wrapper:hover #image {
    transform: scale(2);
    -webkit-transform: scale(2);
    left:-150px;
    top:-100px;
}
票数 3
EN

Stack Overflow用户

发布于 2014-03-24 12:26:01

如果你改变你的过渡到linear,它看起来更少的‘锯齿’。

代码语言:javascript
复制
transition: all 1s linear;

不知道这是不是你想要的行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22609247

复制
相关文章

相似问题

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