使用@media print

时间:2016-01-15 00:18:32

标签: javascript jquery css printing

我有一个Web应用程序,当用户从Web浏览器中选择打印时,我需要打印一个可拖动的div。

到目前为止,我发现的最简洁的建议是this堆栈溢出答案,建议我将页面隐藏起来,并仅为#plotArea显示@media print,如下所示:

@media print {
    body * {
        visibility: hidden;
    }
    #plotArea, #plotArea * {
        visibility: visible;
    }
    #plotArea {
        /* this positioning ignores .draggable() divs */
        position: absolute;
        left: 0;   
        top: 0;
    }
}

但是,因为这个div是可拖动的,所以我不能为我的生活中移除偏移使得div正确定位以进行打印。是否有可能暂时删除可拖动div的偏移量?下面是div的jquery / css

//jquery
$( "#plotArea" ).draggable().offset({ top: 15, left: 400});

/* css */
#plotArea {
    background-color: #FFFFFF;
    width: 42em;
    height: 54.5em;
    float:left;
    font-size: 12pt;
    overflow:hidden;
}

1 个答案:

答案 0 :(得分:2)

所以你要说的是,可拖动插件正在为你的from scrapy import signals from twisted.internet.task import LoopingCall class PersistStats(object): """An extension to persist stats on a given interval. Settings -------- PERSIST_STATS_INTERVAL : integer (default: 60) Interval in seconds. """ def __init__(self, interval): self.interval = interval self.tasks = {} @classmethod def from_crawler(cls, crawler): obj = cls(crawler.settings.getint('PERSIST_STATS_INTERVAL', 60)) crawler.signals.connect(obj.spider_opened, signal=signals.spider_opened) crawler.signals.connect(obj.spider_closed, signal=signals.spider_closed) return obj def spider_opened(self, spider): task = self.tasks[spider.name] = LoopingCall(self.perist_stats, spider) task.start(self.interval) def spider_closed(self, spider): task = self.tasks.pop(spider.name) task.stop() def perist_stats(self, spider): # TODO: store stats somewhere. data = spider.crawler.stats.get_stats() spider.logger.info("Persisting stats:\n%s", data) div应用内联样式,因此会用你的打印媒体查询覆盖你添加到它的定位css吗?

您需要做的是将其上/左等位置值重置为#plotArea并使用auto规则覆盖来覆盖通过javascript应用于它的内联样式插件。

例如;

!important