html背景图不随滚轮滚动,而且按住Ctrl并滚动滚轮时,图片不会变大缩小,就像百度的首页一样...

之前在百度知道我提问过这一个问题,后来解决了。不过好多人来问我时怎么解决的,源码。
其实很简单。这里我贴一下代码。有需要的小伙伴不用再加我qq了,直接来这里取吧。

里面的图片是我随便找的。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
    html,
    body {
        height: 100%;
    }

    body {
        margin: 0;
        background-repeat: no-repeat;
        background-size: cover;
        background-position: center;
        background-attachment: fixed;
        background-image: url(http://pic1.win4000.com/wallpaper/b/589d687069ed9.jpg);
    }

    h1{
        height: 100%;
        width: 100%;
        margin: 0;
        padding: 0;
        color:#fff;
        background-color: rgba(0,0,0,0.5);
        display: -webkit-flex;
        display: -moz-flex;
        display: -ms-flex;
        display: -o-flex;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    </style>
</head>

<body>
    <h1>按住Ctrl+滚动滚轮:可以看到文字缩放,背景不动</h1>
</body>

</html>
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 PyQt5 的 QGraphicsView 和 QGraphicsScene 实现这个功能。以下是一个简单的示例代码: ```python import sys from PyQt5.QtWidgets import QApplication, QGraphicsView, QGraphicsScene from PyQt5.QtGui import QPixmap, QPen, QColor from PyQt5.QtCore import Qt class ImageViewer(QGraphicsView): def __init__(self): super().__init__() # 创建场景 self.scene = QGraphicsScene() self.setScene(self.scene) # 加载图片 self.image = QPixmap('image.jpg') self.scene.addPixmap(self.image) # 设置滚动条策略 self.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded) self.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded) self.setDragMode(QGraphicsView.ScrollHandDrag) # 设置缩放策略 self.setRenderHint(QPixmap.Antialiasing) self.setRenderHint(QPixmap.SmoothTransformation) self.setRenderHint(QPixmap.HighQualityAntialiasing) self.setInteractive(True) self.setTransformationAnchor(QGraphicsView.AnchorUnderMouse) self.setResizeAnchor(QGraphicsView.AnchorUnderMouse) # 画笔和矩形框 self.pen = QPen(QColor(255, 0, 0, 128)) self.rect = None self.start_pos = None def wheelEvent(self, event): # 按住 Ctrl滚动鼠标滚轮进行缩放 if event.modifiers() == Qt.ControlModifier: delta = event.angleDelta().y() factor = 1.1 if delta > 0 else 0.9 self.scale(factor, factor) else: super().wheelEvent(event) def mousePressEvent(self, event): # 按下鼠标左键开始框选矩形 if event.button() == Qt.LeftButton: self.start_pos = event.pos() def mouseMoveEvent(self, event): # 移动鼠标更新框选矩形 if self.start_pos is not None: if self.rect is not None: self.scene.removeItem(self.rect) self.rect = self.scene.addRect(self.start_pos.x(), self.start_pos.y(), event.pos().x() - self.start_pos.x(), event.pos().y() - self.start_pos.y(), self.pen) def mouseReleaseEvent(self, event): # 松开鼠标左键结束框选矩形并输出坐标 if event.button() == Qt.LeftButton: if self.rect is not None: self.scene.removeItem(self.rect) self.rect = self.scene.addRect(self.start_pos.x(), self.start_pos.y(), event.pos().x() - self.start_pos.x(), event.pos().y() - self.start_pos.y(), self.pen) print(self.rect.boundingRect().x(), self.rect.boundingRect().y(), self.rect.boundingRect().width(), self.rect.boundingRect().height()) self.start_pos = None if __name__ == '__main__': app = QApplication(sys.argv) viewer = ImageViewer() viewer.show() sys.exit(app.exec_()) ``` 在这个示例,我们创建了一个 ImageViewer 类,并在其添加了 QGraphicsView 和 QGraphicsScene。我们加载了一张图片并将其添加到场景。然后我们设置了滚动条和缩放策略,并重载了鼠标事件来实现矩形框选和输出坐标的功能。最后我们创建了一个 QApplication 并展示了 ImageViewer。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值