// Loading document.
PDFJS.getDocument(DEFAULT_URL).then(function (pdfDocument) {
// Document loaded, retrieving the page.
return pdfDocument.getPage(PAGE_TO_VIEW).then(function (pdfPage) {
// Creating the page view with default parameters.
var pdfPageView = new PDFJS.PDFPageView({
container: container,
id: PAGE_TO_VIEW,
scale: SCALE,
defaultViewport: pdfPage.getViewport(SCALE),
// We can enable text/annotations layers, if needed
textLayerFactory: new PDFJS.DefaultTextLayerFactory(),
annotationLayerFactory: new PDFJS.DefaultAnnotationLayerFactory()
});
// Associates the actual page with the view, and drawing it
pdfPageView.setPdfPage(pdfPage);
return pdfPageView.draw();
});
});
import { AnnotationLayerBuilder } from 'pdfjs-dist/lib/web/annotation_layer_builder';
import { SimpleLinkService} from 'pdfjs-dist/lib/web/pdf_link_service';
import NullL10n from 'pdfjs-dist/lib/web/ui_utils.js';
var annotateMeta = page.getAnnotations().then(function (data) {
var annotation = new AnnotationLayerBuilder({
pageDiv: textcontainer,
linkService: new SimpleLinkService(),
pdfPage: page,
l10n: NullL10n
})
annotation .render(viewport);
});
<a href="http://site.ru/page.html?opendiv=web" class="link-new">
function $_GET(key) {
var s = window.location.search;
s = s.match(new RegExp(key + '=([^&=]+)'));
return s ? s[1] : false;
}
$(document).ready(function() {
if($_GET['opendiv'] == 'web') {
$('#web').toggleClass('active');
}
});
upstream app_node {
ip_hash;
server 127.0.0.1:3000 weight=5;
# ...
}
server {
# ...
location / ( можно дополнить урл и ноде будеи обрабатыватся только с этого урла /rest/*) {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://app_node;
proxy_redirect off;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
arr = arr.filter(n => n.id !== ID);
arr.splice(arr.findIndex(n => n.id === ID), 1);
const index = arr.findIndex(n => n.id === ID);
if (index !== -1) {
arr.splice(index, 1);
}
1- Возможен ли 100% пиксель пёрфект? как бы я не старался сдвигать всё по милипиксилям, всё равно идёт малейшее несоответствие с макетом, а особенно со шрифтами.Шрифты - подогнать можно, если дизайнер их предварительно правильно обработал. Но, подогнать под 1 конкретный браузер, т.к. разные браузеры по разному рендерят шрифты. Выводы - сделаете самостоятельно :)
2- Нужно ли так очень ответственно подходить к работе?Эти вопросы обычно обсуждаю с заказчиком и/или дизайнером или тем, кто принимает макет по факту. А так же опираясь на то, из какого места у дизайнера рисовавшего макет - растут руки, иной раз, делать "в точности как нарисовано" - означат "угробить проект", т.к.
Через меня прошло пару заказов и вдруг начали жаловаться, что идёт сильное не соответствие с макетом.Очень странно, что они начали жаловаться после того как приняли макет...
Как это делается на Vue JS? Заранее спасибоНе могу обозначить своё мнение, как хоть сколь нибудь экспертное, но в целом, в JS'е (любом, клиентском, связка с серверной частью) обычно это делается одним из двух вариантов:
<script>
'e, например, что-то вроде: var a = 100; //Генерируется в PHP